1. Field of the Invention
The present invention relates in general gather to a computer network and more particularly to a system and method for computer network testing using a production machine and client to playback edited network information to a target machine in order to test the target machine.
2. Related Art
Computer networks are common and vitally important in many diverse applications including business, universities and government. In general, a computer network is two or more computers (or associated machines and devices) that are connected by a communications link. A computer network generally includes a server, which is a computer that provides shared resources to users of the network, and a client, which is a computer that accesses the shared network resources provided by the server using the communication link. For example, the Internet (via the World Wide Web (WWW)) is a wide-area network (WAN) environment whereby a Web server delivers (or serves up) Web pages to a client that communicates a request over the network to the Web server.
The need for reliable network servers is becoming more crucial as an increasing amount of business is conducted over the Internet. In order to assure this reliability, often it is desirable to test a network server before putting the server into production. This testing is used to determine how the server will perform in a production environment and to maximize server performance. One useful technique for testing server reliability and performance is stress testing. Stress testing tests a network server in a controlled setting by using a client to communicate network requests to the server in order to load the server with incoming network requests. Stress testing is highly useful in exposing software or hardware defects and, in multi-processor servers, in finding threading defects. In addition, stress testing is useful in capacity planning of a network, and helps predict whether the number of network servers is sufficient to handle the anticipated incoming network requests. By stress testing the network server to obtain maximum load capability and speed, a network administrator can determine the optimal number of network servers needed to handle the anticipated incoming network requests.
A common approach to stress testing is to use an analysis tool to simulate a variety of workload scenarios on the network server being tested (or target network server). These workload scenarios are simulated using a variety of scripted simulations, which are written by programmers and typically test the most common aspects of network performance. One problem with these scripted simulations, however, is that they are only imitations of the network requests encountered when the server is in a production environment. Moreover, because they are only simulations, they cannot capture every nuance and subtlety of actual network requests and rarely emulates what is encountered in an actual production situation (i.e., the xe2x80x9creal-worldxe2x80x9d). Thus, even after using these scripted simulations the network administrator is often left wondering whether the network server will be capable of performing reliably in a production environment.
Accordingly, there exists a need for a computer network testing system and method for testing a network server that uses network information obtained in a production (or xe2x80x9creal-worldxe2x80x9d) environment. What is also needed is a computer network testing system and method that enables network information stored on a production server to be played back by a client to a target network server such that realistic testing of the target network serer is performed. What is further needed is the ability to edit the stored network information such that network information stored on the production server may be appended or subtracted. In addition, what is needed is the capability to stress test the target network server by increasing or decreasing the amount of network information sent to the target network server during a given time.
To overcome the limitations in the prior art as described above and other limitations that will become apparent upon reading and understanding the present specification, the present invention includes a system and method for computer network testing using a production machine and client to playback edited network information to a target machine. The present invention uses network information obtained in a production environment (xe2x80x9creal-wordxe2x80x9d data) instead of scripted simulations to provide accurate and realistic testing of a target machine. In addition, the present invention allows the collected network information to be edited such that information may be added or subtracted. The present invention also provides stress testing of a target machine by allowing more network information to be sent to the target server during a shorter time period. The present invention offers low-cost testing of a target machine using actual production data that can determine how the target machine will perform in a production environment.
In general, the system of the present invention includes a target machine, a production machine, a playback file, a playback machine, a playback controller and a network information editor. The playback file includes network information collected by the production machine in a production environment and edited by the network information editor. The playback machine reads the playback file and sends the edited network information (such as network requests) contained in the playback file to the target machine. The playback controller initiates and coordinates the playback of the playback file on the playback machine. In a preferred embodiment, the playback controller includes a data collection module that collects data and statistics concerning the testing of the target machine and writes these statistics to an output file. In another preferred embodiment, the playback machine includes several playback clients, with each playback client having its own copy of the playback file at an identical location on each playback client. The network information editor is capable of taking the network information collected by the production machine and editing the information to, for example, add information or remove extraneous information. In addition, the network information editor is capable of altering the amount of network information sent to the target machine. This enables the present invention to, for example, decrease or increase the number of network requests sent to the target machine within a given time period thereby increasing or decreasing the stress on the target machine.
The method of the present invention uses the system of the present invention and generally includes testing a target machine by using a playback machine in communication with a production machine to playback edited network information to the target machine. More specifically, network information is collected by the production machine and the collected network information is edited to create a playback file. The playback machine then plays back the playback file to the target machine. In addition, the method also includes modifying the network information collected by the production machine including adding information, subtracting information, and altering the amount of network information sent to the target machine during a time period.
Other aspects and advantages of the present invention as well as a more complete understanding thereof will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention. Moreover, it is intended that the scope of the invention be limited by the claims and not by the preceding summary or the following detailed description.